import { defineConfig, loadEnv } from "vite";
import vue from "@vitejs/plugin-vue";

import AutoImport from "unplugin-auto-import/vite";
import Components from "unplugin-vue-components/vite";
import { ElementPlusResolver } from "unplugin-vue-components/resolvers";
import viteCompression from "vite-plugin-compression";

// https://vitejs.dev/config/
export default defineConfig(({ command, mode }) => {
  const env = loadEnv(mode, process.cwd(), "");
  return {
    // 配置需要使用的插件列表，这里将vue添加进去
    plugins: [
      vue(),
      viteCompression(),
      AutoImport({
        resolvers: [ElementPlusResolver()],
      }),
      Components({
        resolvers: [ElementPlusResolver()],
      }),
    ],
    pluginOptions: {
      "style-resources-loader": {
        preProcessor: "sass",
        patterns: [],
      },
    },
    // 配置文件别名 vite1.0是/@/  2.0改为/@
    // 这里是将src目录配置别名为 /@ 方便在项目中导入src目录下的文件
    resolve: {
      alias: {
        // "/@": pathResolve("src"),
      },
    },
    build: {
      target: "modules",
      outDir: env.VITE_APP_MODE, //指定输出路径
      // assetsDir: "assets", // 指定生成静态资源的存放路径
      // minify: "terser", // 混淆器，terser构建后文件体积更小
    },
    // 强制预构建插件包
    optimizeDeps: {
      include: ["axios"],
    },
    // 本地运行配置，及反向代理配置
    server: {
      cors: true, // 默认启用并允许任何源
      open: true, // 在服务器启动时自动在浏览器中打开应用程序
      //反向代理配置，注意rewrite写法
      // proxy: {
      //   "/api": {
      //     target: env.VITE_APP_API_URL, //代理接口
      //     changeOrigin: true,
      //     rewrite: (path) => path.replace(/^\/api/, ""),
      //   },
      // },
    },
  };
});
